package online.inote.dic.security.annotions;

import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.ElementType.TYPE;
import static java.lang.annotation.RetentionPolicy.RUNTIME;

import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;

@Documented
@Retention(RUNTIME)
@Target({ TYPE, METHOD })
/**
 * @description: 安全认证
 * @author XQF.Sui
 * @created 2019年6月11日 上午9:40:39
 * @version 1.0
 */
public @interface Security {

	/**
	 * @description 是否认证
	 * @author XQF.Sui
	 * @created 2019年6月11日 上午9:41:33
	 * @return
	 */
	boolean isAuthentication() default true;
	
	/**
	 * @description 豁免角色
	 * @author XQF.Sui
	 * @created 2019年6月11日 上午9:43:09
	 * @return
	 */
	String[] exemptRoles() default {};
	
	/**
	 * @description 授权角色
	 * @author XQF.Sui
	 * @created 2019年6月11日 上午9:43:54
	 * @return
	 */
	String[] authorizedRoles() default {};
	
	/**
	 * @description 禁权角色
	 * @author XQF.Sui
	 * @created 2019年6月11日 上午9:45:27
	 * @return
	 */
	String[] forbiddenRoles() default {};
}